'''
L1=L 意思是将L1也指向L的内存地址,
L1=L[:] 意思是, 复制L的内容并指向新的内存地址.
pop操作的是原来的内存地址
'''
class Solution:
    # 返回二维列表，内部每个列表表示找到的路径
    def FindPath(self, root, expectNumber):
        # write code here
        path, res = [] , []
        def subFindPath(root):
            if root:
                path.append(root.val)
                if not root.left and not root.right and sum(path) == expectNumber:
                    res.append(path[:])
                else:
                    subFindPath(root.left)
                    subFindPath(root.right)
                path.pop()
        subFindPath(root)
        return res
